<?php
class MessagesController extends Controller{
	
	public function index(){
		$this->set('title',NOM_SITE.' - Messagerie');
		if(empty($this->request->params) && isset($_SESSION['type_utilisateur'])){
			$this->set('title',NOM_SITE.' - Messagerie');
		}
		else if (!empty($this->request->params) and count($this->request->params)==1
				&& isset($_SESSION['type_utilisateur'])){
					
			$this->set('title',NOM_SITE.' - Messagerie');
			if(!is_numeric($this->request->params[0])){
				$this->render('/404.php');	
			} else {
				$id_message = $this->request->params[0];
				$messages = $this->getMessages($id_message);
				if(!$messages){
					$this->render('/404.php');		
				}
			}
		} else if(! isset($_SESSION['type_utilisateur'])) {
			$this->redirect(SITE."#popup_connexion");
		} else {
			$this->render('/404.php');	
		}
	}
	  
	public function getListeMessages(){
		
		if(isset($_SESSION['email']) && $this->request->action!=__FUNCTION__){
			$model = $this->loadModel('messagesManager');
			return $model->getListeMessages($this->request,$_SESSION['id_utilisateur']);	
		} else {
			$this->render('/404.php');	
		}
	}
	
	//on null au parametre pour eviter les erreurs du dispatcher
	//lorsque l'utilisateur donne comme action le nom de la fonction et ne renseigne aucun paramètre
	public function getNom($id_utilisateur=null){
		if($this->request->action!=__FUNCTION__){
			$model = $this->loadModel('messagesManager');
			return $model->getNom($id_utilisateur);	
		} else {
			$this->render('/404.php');	
		}
		
	}
	
	public function supprimerMessages(){
		if($this->request->action!=__FUNCTION__){
			$listeId = array();
			$tab = array_keys($_POST);
			$regex = "#^chexbox[0-9]+$#";
			if(isset($_POST['supprimerMessages'])){
				$model = $this->loadModel('messagesManager');
				for($i=0;$i<count($tab);$i++){
					$courant = $tab[$i];
					if(preg_match($regex,$courant)){
						$id = intval(str_replace('chexbox','',$courant));
						$listeId[] = $id;
					}
				}
				$model->supprimerMessages($listeId);
			}
		} else {
			$this->render('/404.php');	
		}
		
	}
	
	//on null au parametre pour eviter les erreurs du dispatcher
	//lorsque l'utilisateur donne comme action le nom de la fonction et ne renseigne aucun paramètre
	public function getMessages($id_messages=null){
		if($this->request->action!=__FUNCTION__){
			$model = $this->loadModel('messagesManager');
			return $model->getMessages($id_messages,$_SESSION['id_utilisateur']);
		} else {
			$this->render('/404.php');	
		}
		
	}
	
	public function sendMessages(){
		if(isset($_POST['envoyerMessages']) && ($this->request->action!=__FUNCTION__)){
			$model = $this->loadModel('messagesManager');
			$messages = htmlentities($_POST['messages']);
			$sujet = htmlentities($_POST['sujet']);
			$id_messages = intval($this->request->params[0]);
			$id_destinateur	 = $model->getExpediteur($id_messages);
			$id_expediteur = $_SESSION['id_utilisateur'];
			return $model->sendMessages($id_expediteur,$id_destinateur,$sujet,$messages);
		} else if($this->request->action==__FUNCTION__){
			$this->render('/404.php');	
		}
	}

    public function sendMessagesAdmin(){
        if(isset($_POST['envoyerMessages']) && ($this->request->action!=__FUNCTION__)){
            $model = $this->loadModel('messagesManager');
            $messages = htmlentities($_POST['messages']);
            $sujet = 'Inscription';
            $id_destinateur	 = '999';
            $id_expediteur = '0';
            return $model->sendMessages($id_expediteur,$id_destinateur,$sujet,$messages);
        } else if($this->request->action==__FUNCTION__){
            $this->render('/404.php');
        }

    }
}